package behavior.Iterator;

/**
 * Created by LYJ on 2016/10/20.
 * 详细链接：Iterator（迭代器）http://blog.csdn.net/u013256816/article/details/51058234
 */
public class MainTest {
    public static void main(String... args) {
        Aggregate ag = new ConcreteAggregate();
        ag.add("zzh");
        ag.add("jj");
        ag.add("qq");
        Iterator it = ag.iterator();
        while(it.hasNext())
        {
            System.out.println(it.next());
        }
    }
}
/*
优点：
简化了遍历方式，对于对象集合的遍历，还是比较麻烦的，对于数组或者有序列表，我们尚可以通过游标来取得，
但用户需要在对集合了解很清楚的前提下，自行遍历对象，但是对于hash表来说，用户遍历起来就比较麻烦了。
而引人了迭代器方法后，用户用起来就简单的多了。
可以提供多种遍历方式，比如说对有序列表，我们可以根据需要提供正序遍历，倒序遍历两种迭代器，
用户用起来只需要得到我们实现好的迭代器，就可以方便的对集合进行遍历了。
封装性良好，用户只需要得到迭代器就可以遍历，而对于遍历算法则不用去关心。
缺点：
对于比较简单的遍历（像数组或者有序列表），使用迭代器方式遍历较为繁琐，比如ArrayList，
用for循环的方式遍历会更好一点，详细可以参考《Java集合框架：ArrayList》
 */